Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

170
Visualizações
La carpeta AppData/Local generada automáticamente se crea "incorrectamente"

cuando ejecuto un .net exe, se crea una carpeta correspondiente C:\Users\UserName\AppData\Local\AppName

dentro de esta carpeta, se crea otra carpeta AppName_Url_ABCXYZ

dentro de esta carpeta, se crea otra carpeta para la versión ensamblada de .net exe 0.2.28.0

¿Alguien puede explicar cómo Windows decide crear la carpeta de segundo nivel AppName_Url_ABCXYZ ?

tengo un problema cuando incremento mi versión de ensamblado y realizo una publicación de un solo archivo y ejecuto el exe resultante, se crea una nueva carpeta AppName_Url_ABCXYZ que contiene la nueva carpeta de versión de ensamblado.

esto causa problemas porque interrumpe la funcionalidad de Properties.Settings.Default.Upgrade() ya que la configuración para actualizar ya no está en el directorio esperado

Bien:

 -AppData -Local -MyApp -MyApp_Url_ABCXYZ -0.2.13.0 -0.2.14.0 -0.2.15.0

Malo:

 -AppData -Local -MyApp -MyApp_Url_ABC1 -0.2.13.0 -MyApp_Url_ABC2 -0.2.14.0 -MyApp_Url_ABC3 -0.2.15.0

ingrese la descripción de la imagen aquí

Actualizar:

La información proporcionada por @Richard Deeming indica que la parte hash de la carpeta appdata se genera así:

 var uri = "file:///" + fullExePath; //or 'assemblyName.CodeBase' if vshost (you can check the 'FriendlyName') uri = uri.ToUpperInvariant(); var ms = new MemoryStream(); var bSer = new BinaryFormatter(); bSer.Serialize(ms, uri); ms.Position = 0; var sha1 = new SHA1CryptoServiceProvider(); var hash = sha1.ComputeHash(ms); var hashstring = ToBase32StringSuitableForDirName(hash);

lo que no tiene sentido ya que la ruta exe no está cambiando

este problema no ocurre con una nueva aplicación WPF .net 6 e incrementando la versión de ensamblaje, por lo que es algo específico de mi aplicación.

examinar los exe resultantes en el explorador de Windows no ayuda, parecen idénticos.

Actualizar:

No he podido determinar por qué ocurre esto en mi proyecto. Ni siquiera sé cómo depurarlo. Nunca he realizado ningún cambio intencional en este comportamiento.

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Descargue el paquete completo del proyecto aquí: ConsoleApp1.zip

Para demostrarlo, creemos una aplicación de consola simple:

ingrese la descripción de la imagen aquí

y agregale un enlace:

 <PackageReference Include="System.Configuration.ConfigurationManager" Version="6.0.0" />

También agregaremos el archivo de propiedades del proyecto Settings.settings. Como resultado, obtenemos un proyecto con la siguiente configuración:

ingrese la descripción de la imagen aquí

Después de compilar en modo de depuración y ejecutar el resultado de ConsoleApp1.exe, obtenemos la siguiente imagen en la ruta C:\Users\Administrator\AppData\Local\ConsoleApp1:

ingrese la descripción de la imagen aquí

dentro de esta carpeta habrá una carpeta con el número de versión del programa:

ingrese la descripción de la imagen aquí

Al compilar la versión de lanzamiento y ejecutar el resultado de ConsoleApp1.exe, obtenemos la siguiente imagen en la ruta C:\Users\Administrator\AppData\Local\ConsoleApp1:

ingrese la descripción de la imagen aquí

dentro de esta nueva carpeta también habrá una carpeta con el número de versión del programa:

ingrese la descripción de la imagen aquí

Cabe señalar que las versiones de depuración y lanzamiento del programa crean carpetas diferentes.

Cuando cambie la versión del proyecto, aparecerán nuevas versiones en las carpetas de depuración y lanzamiento, respectivamente:

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

Los programas de depuración y lanzamiento son "versiones" de compilación diferentes del mismo proyecto, y se crean URL diferentes para separarlos.

Descargue el paquete completo del proyecto aquí: ConsoleApp1.zip

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda